#!/usr/bin/env python


class Contract():
    '''
    Contract类，用于存储合约信息
    实例化时，传入合约信息，如：
    get_instrument_detail(stock_code, iscomplete)返回的合约信息
    ExchangeID - string 合约市场代码
    InstrumentID - string 合约代码
    InstrumentName - string 合约名称
    ProductID - string 合约的品种ID(期货)
    ProductName - string 合约的品种名称(期货)
    ExchangeCode - string 交易所代码
    UniCode - string 统一规则代码
    CreateDate - str 上市日期(期货)
    OpenDate - str IPO日期(股票)
    ExpireDate - int 退市日或者到期日
    PreClose - float 前收盘价格
    SettlementPrice - float 前结算价格
    UpStopPrice - float 当日涨停价
    DownStopPrice - float 当日跌停价
    FloatVolume - float 流通股本
    TotalVolume - float 总股本
    LongMarginRatio - float 多头保证金率
    ShortMarginRatio - float 空头保证金率
    PriceTick - float 最小价格变动单位
    VolumeMultiple - int 合约乘数(对期货以外的品种，默认是1)
    MainContract - int 主力合约标记，1、2、3分别表示第一主力合约，第二主力合约，第三主力合约
    LastVolume - int 昨日持仓量
    InstrumentStatus - int 合约停牌状态
    IsTrading - bool 合约是否可交易
    IsRecent - bool 是否是近月合约
    OpenInterestMultiple - int 交割月持仓倍数 


    另外将get_instrument_type()方法返回的合约类型映射为以下类型：
    instrument_type:
        'index'		#指数   
        'stock'		#股票
        'fund'		#基金
        'etf'		#ETF
    '''

    def __init__(self, **kwargs):
        self.instrument_type = None
        for key, value in kwargs.items():
            setattr(self, key, value)
